package com.czk.gulimall.order;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * 一 引入rabbitmq场景启动器
 * 1 给容器中自动配置了rabbitTemplate AmqpAdmin
 * 2 开启rabbit EnableRabbit
 * 3 配置文件中配置连接信息
 * 4 监听消息
 * @RabbitListener 可以标注在类和方法上
 * @RabbitHandler 可以标注在方法上
 * seata的使用：
 * 1 每一个微服务先创建undo_log表
 * 2 安装全局事务协调器
 * 3 导入依赖
 * 4 启动全局事务协调器
 * 5 标记全局事务注解
 * 6 所有想要用到分布式事务的微服务都是用seata DataSourceProxy代理自己的数据源
 * 模式选择：
 *  1 AT 模式->不适合高并发，因为会导致串行化，造成效率低下
 *
 *
 *
 *
 * @Author:ChenZhangKun
 * @Date: 2021/12/6 22:26
 */
@SpringBootApplication
@MapperScan(basePackages = {"com.czk.gulimall.order.dao"}) // mapper位置
@EnableDiscoveryClient
@EnableRabbit
@EnableFeignClients
public class OrderMainApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderMainApplication.class, args);
    }
}
